# 描述
# 古代有一个梵塔，塔内有三个座A、B、C，A座上有n个盘子，盘子大小不等，大的在下，小的在上。三个座都可以用来放盘子。有一个和尚想把这n个盘子从A座移到C座，但每次只能允许移动一个盘子，并且在移动过程中，3个座上的盘子始终保持大盘在下，小盘在上。输入盘子数目n，要求输出移动的步骤。
#
# 输入
# 盘子数目n ( n < 8)
# 输出
# 移动方案
# 样例输入
# 3
# 样例输出
# A->C
# A->B
# C->B
# A->C
# B->A
# B->C
# A->C

def Hanoi(n, src, mid, dest):
    # 将src座上的n个盘子，以mid座为中转，移动到dest座
    if n == 1:  # 只需移动一个盘子
        # 直接将盘子从src移动到dest即可
        print(src + "->" + dest)
        return  # 递归终止
    Hanoi(n - 1, src, dest, mid)  # 先将n-1个盘子从src移动到mid
    print(src + "->" + dest)  # 再将一个盘子从src移动到dest
    Hanoi(n - 1, mid, src, dest)  # 最后将n-1个盘子从mid移动到dest


n = int(input())
Hanoi(n, 'A', 'B', 'C')
